<!DOCTYPE html>
<!-- saved from url=(0016)http://localhost -->
<html>
  <head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title>端口漏洞</title>
    <style>
        body{
            margin: 0;
        }
        #content-info{
            width: auto;
            margin: 0 auto;
            text-align: center;
        }
        #author-info{
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }
        #title{
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
            padding-top: 10px;
            margin-bottom: 2px;
            font-size: 34px;
            color: #505050;
        }
        .text{
            white-space:nowrap;
            text-overflow: ellipsis;
            display: inline-block;
            margin-right: 20px;
            margin-bottom: 2px;
            font-size: 20px;
            color: #8c8c8c;
        }
        #navBar{
            width: auto;
            height: auto;
            position: fixed;
            right:0;
            bottom: 0;
            background-color: #f0f3f4;
            overflow-y: auto;
            text-align: center;
        }
        #svg-container{
            width: 100%;
            overflow-x: scroll;
            min-width: 0px;
            margin: 0 10px;
        }
        #nav-thumbs{
            overflow-y: scroll;
            padding: 0 5px;
        }
        .nav-thumb{
            position: relative;
            margin: 10px auto;
        }
        .nav-thumb >p{
            text-align: center;
            font-size: 12px;
            margin: 4px 0 0 0;
        }
        .nav-thumb >div{
            position: relative;
            display: inline-block;
            border: 1px solid #c6cfd5;
        }
        .nav-thumb img{
            display: block;
        }
        #main-content{
            bottom: 0;
            left: 0;
            right: 0;
            background-color: #d0cfd8;
            display: flex;
            height: auto;
            flex-flow: row wrap;
            text-align:center;
        }
        #svg-container >svg{
            display: block;
            margin:10px auto;
            margin-bottom: 0;
        }
        #copyright{
            bottom: 0;
            left: 50%;
            margin: 5px auto;
            font-size: 16px;
            color: #515151;
        }
        #copyright >a{
            text-decoration: none;
            color: #77C;
        }
        .number{
            position: absolute;
            top:0;
            left:0;
            border-top:22px solid #08a1ef;
            border-right: 22px solid transparent;
        }
        .pagenum{
            font-size: 12px;
            color: #fff;
            position: absolute;
            top: -23px;
            left: 2px;
        }
            #navBar::-webkit-scrollbar{
            width: 8px;
            background-color: #f5f5f5;
        }
            #navBar::-webkit-scrollbar-track{
            -webkit-box-shadow: inset 0 0 4px rgba(0,0,0,.3);
            border-radius: 8px;
            background-color: #fff;
        }
            #navBar::-webkit-scrollbar-thumb{
            border-radius: 8px;
            -webkit-box-shadow: inset 0 0 4px rgba(0,0,0,.3);
            background-color: #6b6b70;
        }
        #navBar::-webkit-scrollbar-thumb:hover{
            background-color: #4a4a4f;
        }
</style>
  </head>
  <body>
    <div id="main-area">
      <div id="content-info">
        <div id="content-info">
          <div id="title">端口漏洞</div>
        </div>
        <div id="author-info">
          <div id="author-name" class="text">yuguanc</div>
          <div id="share-time" class="text">2018-05-29</div>
        </div>
      </div>
      <div id="main-content">
        <div id="svg-container"><svg ed:name="Page-1" xmlns:ed="http://www.edrawsoft.cn/xml/2017/SVGExtensions/" ed:vSpacing="30" height="2555" preserveAspectRadio="xMinYMin meet" ed:hSpacing="30" viewBox="0 0 1565 2556" xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" id="page1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1565">
    <style type="text/css"><![CDATA[
g[ed\:togtopicid],g[ed\:hyperlink],g[ed\:comment],g[ed\:note] {cursor:pointer;}
g[id] {-moz-user-select: none;-ms-user-select: none;user-select: none;}
svg text::selection,svg tspan::selection{background-color: #4285f4;color: #ffffff;fill: #ffffff;}
.st5 {fill:#303030;font-family:宋体;font-size:10pt}
.st4 {fill:#303030;font-family:宋体;font-size:12pt}
.st6 {fill:#303030;font-family:宋体;font-size:14pt}
]]></style>
    <defs>
        <linearGradient x2="0%" x1="0%" id="lg2" y2="100%" y1="0%">
            <stop stop-color="#ffffff" offset="0"/>
            <stop stop-color="#f0f5f0" offset="0.25"/>
            <stop stop-color="#e1ebe1" offset="0.75"/>
            <stop stop-color="#c8d7c8" offset="1"/>
        </linearGradient>
    </defs>
    <rect height="2556" fill="#ffffff" y="0" width="1565" x="0"/>
    <g transform="translate(981,267.85)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="102" ed:width="91">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L87,0C89.2,0,91,1.8,91,4L91,36C91,38.2,89.2,40,87,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,514.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="103" d="M-40.9,464C9,296.3,-50.2,-495,63.8,-495" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="48" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">21-FTP</tspan>
        </text>
    </g>
    <g transform="translate(981,450.15)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="104" ed:width="91">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L87,0C89.2,0,91,1.8,91,4L91,36C91,38.2,89.2,40,87,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,423.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="105" d="M-39,372.8C7.5,224.7,-48.7,-403.8,63.8,-403.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="48" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">22-SSH</tspan>
        </text>
    </g>
    <g transform="translate(981,559.45)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="106" ed:width="115">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L111,0C113.2,0,115,1.8,115,4L115,36C115,38.2,113.2,40,111,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,369.17)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="107" d="M-37.6,318.2C6.3,182.9,-47.5,-349.2,63.8,-349.2" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="72" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">23-Telnet</tspan>
        </text>
    </g>
    <g transform="translate(981,727.15)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="108" ed:width="155">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L151,0C153.2,0,155,1.8,155,4L155,36C155,38.2,153.2,40,151,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,285.33)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="109" d="M-34.7,234.3C4,120.8,-45,-265.3,63.8,-265.3" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="112" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">53 DNS域名解析</tspan>
        </text>
    </g>
    <g transform="translate(981,938.65)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="110" ed:width="163">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,36C163,38.2,161.2,40,159,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,179.58)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="111" d="M-30.3,128.6C-0.4,48.4,-27.1,-159.6,63.8,-159.6" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="120" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">80/81/443  -IIS</tspan>
        </text>
    </g>
    <g transform="translate(981,1072.3)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="112" ed:width="99">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L95,0C97.2,0,99,1.8,99,4L99,36C99,38.2,97.2,40,95,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,112.75)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="113" d="M-24.8,61.8C-0.1,9,-0.3,-92.8,63.8,-92.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="56" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">88-AD域</tspan>
        </text>
    </g>
    <g transform="translate(981,1162.15)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="114" ed:width="179">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L175,0C177.2,0,179,1.8,179,4L179,36C179,38.2,177.2,40,175,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,67.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="115" d="M-12.5,16.8C8.4,-11.1,24,-47.8,63.8,-47.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="136" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">135-PRC的DCOM服务</tspan>
        </text>
    </g>
    <g transform="translate(981,1271.45)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="116" ed:width="179">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L175,0C177.2,0,179,1.8,179,4L179,36C179,38.2,177.2,40,175,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,13.17)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="117" d="M0.8,-0.5C22,3,41.6,6.8,63.8,6.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="136" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">137-Samba-NetBIOS</tspan>
        </text>
    </g>
    <g transform="translate(981,1380.75)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="118" ed:width="251">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L247,0C249.2,0,251,1.8,251,4L251,36C251,38.2,249.2,40,247,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-41.47)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="119" d="M-18.1,-30.5C4.2,5.9,15.9,61.5,63.8,61.5" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="208" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">139-Samba-文件和打印机共享</tspan>
        </text>
    </g>
    <g transform="translate(981,1470.6)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="120" ed:width="107">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L103,0C105.2,0,107,1.8,107,4L107,36C107,38.2,105.2,40,103,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-86.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="121" d="M-26.5,-75.4C-0.8,-16.4,-6.6,106.4,63.8,106.4" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="64" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">161-SNMP</tspan>
        </text>
    </g>
    <g transform="translate(981,1575.05)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="122" ed:width="107">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L103,0C105.2,0,107,1.8,107,4L107,36C107,38.2,105.2,40,103,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-138.63)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="123" d="M-30.2,-127.6C-0.4,-47.8,-26.8,158.6,63.8,158.6" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="64" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">389-LDAP</tspan>
        </text>
    </g>
    <g transform="translate(981,1684.35)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="124" ed:width="267">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L263,0C265.2,0,267,1.8,267,4L267,36C267,38.2,265.2,40,263,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-193.27)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="125" d="M-32.6,-182.3C1.9,-84.1,-40.3,213.3,63.8,213.3" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="224" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">443-ssl心脏滴血及web逻辑漏洞</tspan>
        </text>
    </g>
    <g transform="translate(981,1793.65)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="126" ed:width="163">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,36C163,38.2,161.2,40,159,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-247.92)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="127" d="M-34.8,-236.9C4,-122.7,-45.1,267.9,63.8,267.9" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="120" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">135/445-smb漏洞</tspan>
        </text>
    </g>
    <g transform="translate(981,1902.95)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="128" ed:width="115">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L111,0C113.2,0,115,1.8,115,4L115,36C115,38.2,113.2,40,111,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-302.58)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="129" d="M-36.7,-291.6C5.6,-162.9,-46.8,322.6,63.8,322.6" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="72" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">873-Rsync</tspan>
        </text>
    </g>
    <g transform="translate(981,2012.25)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="130" ed:width="155">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L151,0C153.2,0,155,1.8,155,4L155,36C155,38.2,153.2,40,151,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-357.22)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="131" d="M-38.3,-346.2C6.9,-204.2,-48.2,377.2,63.8,377.2" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="112" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">1433-sqlserver</tspan>
        </text>
    </g>
    <g transform="translate(981,2136.15)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="132" ed:width="131">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L127,0C129.2,0,131,1.8,131,4L131,36C131,38.2,129.2,40,127,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-419.17)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="133" d="M-39.8,-408.2C8.1,-252.2,-49.4,439.2,63.8,439.2" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="88" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">1521-oracle</tspan>
        </text>
    </g>
    <g transform="translate(981,2240.6)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="134" ed:width="107">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L103,0C105.2,0,107,1.8,107,4L107,36C107,38.2,105.2,40,103,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-471.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="135" d="M-40.9,-460.4C9,-293.4,-50.2,491.4,63.8,491.4" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="64" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">2049-NFS</tspan>
        </text>
    </g>
    <g transform="translate(981,2325.6)" ed:parentid="101" ed:height="40" ed:layout="rightmap" id="136" ed:width="155">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L151,0C153.2,0,155,1.8,155,4L155,36C155,38.2,153.2,40,151,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(-63.75,-513.9)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="137" d="M-41.6,-502.9C9.6,-327.4,-50.8,533.9,63.8,533.9" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="112" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">2181-zookeeper</tspan>
        </text>
    </g>
    <g transform="translate(595,2364.6)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="138" ed:width="131">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L127,0C129.2,0,131,1.8,131,4L131,36C131,38.2,129.2,40,127,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(194.75,-533.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="139" d="M41.9,-522.4C-9.8,-343.1,51,553.4,-63.8,553.4" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="88" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">docker-2375</tspan>
        </text>
    </g>
    <g transform="translate(579,2279.6)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="140" ed:width="147">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L143,0C145.2,0,147,1.8,147,4L147,36C147,38.2,145.2,40,143,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(210.75,-490.9)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="141" d="M41.2,-479.9C-9.2,-309,50.5,510.9,-63.8,510.9" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="104" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">doom病毒-3127</tspan>
        </text>
    </g>
    <g transform="translate(651,2189.75)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="142" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,-445.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="143" d="M40.4,-435C-8.6,-273.3,49.8,466,-63.8,466" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">3306</tspan>
        </text>
    </g>
    <g transform="translate(651,2080.45)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="144" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,-391.32)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="145" d="M39.2,-380.3C-7.6,-230.5,48.9,411.3,-63.8,411.3" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">3389</tspan>
        </text>
    </g>
    <g transform="translate(651,1971.15)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="146" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,-336.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="147" d="M37.8,-325.7C-6.5,-188.6,47.7,356.7,-63.8,356.7" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">4899</tspan>
        </text>
    </g>
    <g transform="translate(563,1881.3)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="148" ed:width="163">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,36C163,38.2,161.2,40,159,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(226.75,-291.75)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="149" d="M36.4,-280.8C-5.4,-154.8,46.5,311.8,-63.8,311.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="120" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">postgreSQL-5432</tspan>
        </text>
    </g>
    <g transform="translate(435,1796.3)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="150" ed:width="291">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L287,0C289.2,0,291,1.8,291,4L291,36C291,38.2,289.2,40,287,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(354.75,-249.25)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="151" d="M34.9,-238.3C-4.1,-123.7,45.2,269.3,-63.8,269.3" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="248" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">symantecpcanywhere远控攻击-5631</tspan>
        </text>
    </g>
    <g transform="translate(563,1691.85)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="152" ed:width="163">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,36C163,38.2,161.2,40,159,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(226.75,-197.02)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="153" d="M32.8,-186C-2,-86.7,40.9,217,-63.8,217" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="120" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">Pcanywhere-5632</tspan>
        </text>
    </g>
    <g transform="translate(619,1553.35)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="154" ed:width="107">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L103,0C105.2,0,107,1.8,107,4L107,36C107,38.2,105.2,40,103,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(170.75,-127.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="155" d="M29.6,-116.8C0.7,-40.9,23.1,147.8,-63.8,147.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="64" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">VNC-5900</tspan>
        </text>
    </g>
    <g transform="translate(603,1429.45)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="156" ed:width="123">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L119,0C121.2,0,123,1.8,123,4L123,36C123,38.2,121.2,40,119,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(186.75,-65.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="157" d="M23.7,-54.8C-0.4,-5.4,-3.1,85.8,-63.8,85.8" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="80" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">redis-6379</tspan>
        </text>
    </g>
    <g transform="translate(539,1232.55)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="158" ed:width="187">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L183,0C185.2,0,187,1.8,187,4L187,36C187,38.2,185.2,40,183,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(250.75,32.63)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="159" d="M-0.8,0.8C-21.2,-5.8,-40.2,-12.6,-63.8,-12.6" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="144" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">weblogic-7001/7002</tspan>
        </text>
    </g>
    <g transform="translate(651,889.65)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="160" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,204.08)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="161" d="M31.4,153.1C-0.6,64.4,34.1,-184.1,-63.8,-184.1" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">8080</tspan>
        </text>
    </g>
    <g transform="translate(651,634.35)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="162" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,331.73)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="163" d="M36.4,280.7C-5.4,154.8,46.5,-311.7,-63.8,-311.7" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">8089</tspan>
        </text>
    </g>
    <g transform="translate(651,529.9)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="164" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,383.95)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="165" d="M38,333C-6.6,194.1,47.9,-363.9,-63.8,-363.9" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">8161</tspan>
        </text>
    </g>
    <g transform="translate(651,444.9)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="166" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,426.45)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="167" d="M39.1,375.4C-7.5,226.7,48.8,-406.5,-63.8,-406.4" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">8649</tspan>
        </text>
    </g>
    <g transform="translate(651,359.9)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="168" ed:width="75">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L71,0C73.2,0,75,1.8,75,4L75,36C75,38.2,73.2,40,71,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(138.75,468.95)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="169" d="M40,418C-8.3,259.9,49.5,-448.9,-63.8,-448.9" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="32" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">9001</tspan>
        </text>
    </g>
    <g transform="translate(611,255.45)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="170" ed:width="115">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L111,0C113.2,0,115,1.8,115,4L115,36C115,38.2,113.2,40,111,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(178.75,521.17)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="171" d="M41,470.2C-9.1,301.2,50.3,-501.2,-63.8,-501.2" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="72" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">8080/9990</tspan>
        </text>
    </g>
    <g transform="translate(643,151)" ed:parentid="101" ed:height="40" ed:layout="leftmap" id="172" ed:width="83">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#f5f9fe" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,36C83,38.2,81.2,40,79,40L4,40C1.8,40,0,38.2,0,36L0,4C0,1.8,1.8,0,4,0z"/>
        <path transform="translate(146.75,573.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="173" d="M41.9,522.4C-9.8,343.1,51,-553.4,-63.8,-553.4" stroke-linecap="round"/>
        <text class="st4">
            <tspan textLength="40" style="white-space:pre" lengthAdjust="spacing" y="26.5" x="22">11211</tspan>
        </text>
    </g>
    <g transform="translate(1101,190)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="174" ed:width="60">
        <path transform="translate(-14.5,59.18)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="175" d="M-14.5,38.7C4.6,38.7,-11.8,-38.7,14.5,-38.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程溢出</tspan>
        </text>
    </g>
    <g transform="translate(1101,219.2)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="176" ed:width="60">
        <path transform="translate(-14.5,44.57)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="177" d="M-14.5,24.1C2.4,24.1,-6.5,-24.1,14.5,-24.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">暴力破解</tspan>
        </text>
    </g>
    <g transform="translate(1101,248.4)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="178" ed:width="132">
        <path transform="translate(-14.5,29.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="179" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L132,20.5"/>
        <text class="st5">
            <tspan textLength="124" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">匿名访问-未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(1101,277.6)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="180" ed:width="183">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="181" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L183,20.5"/>
        <text class="st5">
            <tspan textLength="175" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">配置不当 ，直接cd / &amp;&amp; dir</tspan>
        </text>
    </g>
    <g transform="translate(1101,306.8)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="182" ed:width="145">
        <path transform="translate(-14.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="183" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L145,20.5"/>
        <text class="st5">
            <tspan textLength="137" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">使用明文传输技术-嗅探</tspan>
        </text>
    </g>
    <g transform="translate(1101,336)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="184" ed:width="60">
        <path transform="translate(-14.5,-13.82)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="185" d="M-14.5,-34.3C4.1,-34.3,-10.5,34.3,14.5,34.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">后门技术</tspan>
        </text>
    </g>
    <g transform="translate(1101,365.2)" ed:parentid="102" ed:height="20.5" ed:layout="rightmap" id="186" ed:width="60">
        <path transform="translate(-14.5,-28.42)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="187" d="M-14.5,-48.9C5.5,-48.9,-13.9,48.9,14.5,48.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">跳转攻击</tspan>
        </text>
    </g>
    <g transform="translate(1101,430.7)" ed:parentid="104" ed:height="20.5" ed:layout="rightmap" id="188" ed:width="60">
        <path transform="translate(-14.5,29.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="189" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(1101,459.9)" ed:parentid="104" ed:height="20.5" ed:layout="rightmap" id="190" ed:width="68">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="191" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L68,20.5"/>
        <text class="st5">
            <tspan textLength="60" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">防火墙SSH</tspan>
        </text>
    </g>
    <g transform="translate(1101,489.1)" ed:parentid="104" ed:height="20.5" ed:layout="rightmap" id="192" ed:width="83">
        <path transform="translate(-14.5,0.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="193" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L83,20.5"/>
        <text class="st5">
            <tspan textLength="75" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Openssl漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1125,554.6)" ed:parentid="106" ed:height="20.5" ed:layout="rightmap" id="194" ed:width="93">
        <path transform="translate(-14.5,22.68)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="195" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L93,20.5"/>
        <text class="st5">
            <tspan textLength="85" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">明文传输-嗅探</tspan>
        </text>
    </g>
    <g transform="translate(1125,583.8)" ed:parentid="106" ed:height="20.5" ed:layout="rightmap" id="196" ed:width="60">
        <path transform="translate(-14.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="197" d="M-14.5,-12.4C-0,-12.4,-0.9,12.4,14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">暴力破解</tspan>
        </text>
    </g>
    <g transform="translate(1165,649.3)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="198" ed:width="60">
        <path transform="translate(-14.5,59.18)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="199" d="M-14.5,38.7C4.6,38.7,-11.8,-38.7,14.5,-38.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程溢出</tspan>
        </text>
    </g>
    <g transform="translate(1165,678.5)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="200" ed:width="81">
        <path transform="translate(-14.5,44.57)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="201" d="M-14.5,24.1C2.4,24.1,-6.5,-24.1,14.5,-24.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L81,20.5"/>
        <text class="st5">
            <tspan textLength="73" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">DNS欺骗攻击</tspan>
        </text>
    </g>
    <g transform="translate(1165,707.7)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="202" ed:width="86">
        <path transform="translate(-14.5,29.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="203" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">拒绝服务攻击</tspan>
        </text>
    </g>
    <g transform="translate(1165,736.9)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="204" ed:width="120">
        <path transform="translate(-14.5,15.37)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="205" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L120,20.5"/>
        <text class="st5">
            <tspan textLength="112" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">DNS域传送信息泄露</tspan>
        </text>
    </g>
    <g transform="translate(1165,766.1)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="206" ed:width="55">
        <path transform="translate(-14.5,0.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="207" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L55,20.5"/>
        <text class="st5">
            <tspan textLength="47" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">DNS劫持</tspan>
        </text>
    </g>
    <g transform="translate(1165,795.3)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="208" ed:width="81">
        <path transform="translate(-14.5,-13.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="209" d="M-14.5,-34.3C4.1,-34.3,-10.5,34.3,14.5,34.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L81,20.5"/>
        <text class="st5">
            <tspan textLength="73" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">DNS缓存投毒</tspan>
        </text>
    </g>
    <g transform="translate(1165,824.5)" ed:parentid="108" ed:height="20.5" ed:layout="rightmap" id="210" ed:width="146">
        <path transform="translate(-14.5,-28.43)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="211" d="M-14.5,-48.9C5.5,-48.9,-13.9,48.9,14.5,48.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L146,20.5"/>
        <text class="st5">
            <tspan textLength="138" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">DNS隧道技术刺穿防火墙</tspan>
        </text>
    </g>
    <g transform="translate(1173,890)" ed:parentid="110" ed:height="20.5" ed:layout="rightmap" id="212" ed:width="68">
        <path transform="translate(-14.5,44.58)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="213" d="M-14.5,24.1C2.4,24.1,-6.5,-24.1,14.5,-24.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L68,20.5"/>
        <text class="st5">
            <tspan textLength="60" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">PUT写文件</tspan>
        </text>
    </g>
    <g transform="translate(1173,919.2)" ed:parentid="110" ed:height="20.5" ed:layout="rightmap" id="214" ed:width="64">
        <path transform="translate(-14.5,29.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="215" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L64,20.5"/>
        <text class="st5">
            <tspan textLength="56" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">ms15-034</tspan>
        </text>
    </g>
    <g transform="translate(1173,948.4)" ed:parentid="110" ed:height="20.5" ed:layout="rightmap" id="216" ed:width="123">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="217" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L123,20.5"/>
        <text class="st5">
            <tspan textLength="115" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">http.sys 内存下载</tspan>
        </text>
    </g>
    <g transform="translate(1173,977.6)" ed:parentid="110" ed:height="20.5" ed:layout="rightmap" id="218" ed:width="60">
        <path transform="translate(-14.5,0.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="219" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">解析漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1173,1006.8)" ed:parentid="110" ed:height="20.5" ed:layout="rightmap" id="220" ed:width="86">
        <path transform="translate(-14.5,-13.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="221" d="M-14.5,-34.3C4.1,-34.3,-10.5,34.3,14.5,34.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">短文件名泄露</tspan>
        </text>
    </g>
    <g transform="translate(1109,1082.05)" ed:parentid="112" ed:height="20.5" ed:layout="rightmap" id="222" ed:width="64">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="223" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L64,20.5"/>
        <text class="st5">
            <tspan textLength="56" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">MS14-068</tspan>
        </text>
    </g>
    <g transform="translate(1189,1157.3)" ed:parentid="114" ed:height="20.5" ed:layout="rightmap" id="224" ed:width="74">
        <path transform="translate(-14.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="225" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L74,20.5"/>
        <text class="st5">
            <tspan textLength="66" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">PC远程溢出</tspan>
        </text>
    </g>
    <g transform="translate(1189,1186.5)" ed:parentid="114" ed:height="20.5" ed:layout="rightmap" id="226" ed:width="73">
        <path transform="translate(-14.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="227" d="M-14.5,-12.4C-0,-12.4,-0.9,12.4,14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">弱口令登录</tspan>
        </text>
    </g>
    <g transform="translate(1189,1252)" ed:parentid="116" ed:height="20.5" ed:layout="rightmap" id="228" ed:width="146">
        <path transform="translate(-14.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="229" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L146,20.5"/>
        <text class="st5">
            <tspan textLength="138" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">利用RPC漏洞攻击计算机</tspan>
        </text>
    </g>
    <g transform="translate(1189,1281.2)" ed:parentid="116" ed:height="20.5" ed:layout="rightmap" id="230" ed:width="60">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="231" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">病毒入口</tspan>
        </text>
    </g>
    <g transform="translate(1189,1310.4)" ed:parentid="116" ed:height="20.5" ed:layout="rightmap" id="232" ed:width="60">
        <path transform="translate(-14.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="233" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">暴力破解</tspan>
        </text>
    </g>
    <g transform="translate(1261,1375.9)" ed:parentid="118" ed:height="20.5" ed:layout="rightmap" id="234" ed:width="153">
        <path transform="translate(-14.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="235" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L153,20.5"/>
        <text class="st5">
            <tspan textLength="145" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">IPX$共享后的空链接漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1261,1405.1)" ed:parentid="118" ed:height="20.5" ed:layout="rightmap" id="236" ed:width="60">
        <path transform="translate(-14.5,8.08)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="237" d="M-14.5,-12.4C-0,-12.4,-0.9,12.4,14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">病毒入口</tspan>
        </text>
    </g>
    <g transform="translate(1117,1480.35)" ed:parentid="120" ed:height="20.5" ed:layout="rightmap" id="238" ed:width="73">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="239" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(1117,1555.6)" ed:parentid="122" ed:height="20.5" ed:layout="rightmap" id="240" ed:width="34">
        <path transform="translate(-14.5,29.98)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="241" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L34,20.5"/>
        <text class="st5">
            <tspan textLength="26" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">注入</tspan>
        </text>
    </g>
    <g transform="translate(1117,1584.8)" ed:parentid="122" ed:height="20.5" ed:layout="rightmap" id="242" ed:width="73">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="243" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(1117,1614)" ed:parentid="122" ed:height="20.5" ed:layout="rightmap" id="244" ed:width="47">
        <path transform="translate(-14.5,0.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="245" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L47,20.5"/>
        <text class="st5">
            <tspan textLength="39" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">弱密码</tspan>
        </text>
    </g>
    <g transform="translate(1277,1679.5)" ed:parentid="124" ed:height="20.5" ed:layout="rightmap" id="246" ed:width="81">
        <path transform="translate(-14.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="247" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L81,20.5"/>
        <text class="st5">
            <tspan textLength="73" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">ssl心脏滴血</tspan>
        </text>
    </g>
    <g transform="translate(1277,1708.7)" ed:parentid="124" ed:height="20.5" ed:layout="rightmap" id="248" ed:width="81">
        <path transform="translate(-14.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="249" d="M-14.5,-12.4C-0,-12.4,-0.9,12.4,14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L81,20.5"/>
        <text class="st5">
            <tspan textLength="73" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">web逻辑漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1173,1774.2)" ed:parentid="126" ed:height="20.5" ed:layout="rightmap" id="250" ed:width="100">
        <path transform="translate(-14.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="251" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L100,20.5"/>
        <text class="st5">
            <tspan textLength="92" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">ms远程溢出系列</tspan>
        </text>
    </g>
    <g transform="translate(1173,1803.4)" ed:parentid="126" ed:height="20.5" ed:layout="rightmap" id="252" ed:width="114">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="253" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L114,20.5"/>
        <text class="st5">
            <tspan textLength="106" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">使用IPC$进行渗透</tspan>
        </text>
    </g>
    <g transform="translate(1173,1832.6)" ed:parentid="126" ed:height="20.5" ed:layout="rightmap" id="254" ed:width="112">
        <path transform="translate(-14.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="255" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L112,20.5"/>
        <text class="st5">
            <tspan textLength="104" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">共享获取敏感信息</tspan>
        </text>
    </g>
    <g transform="translate(1125,1898.1)" ed:parentid="128" ed:height="20.5" ed:layout="rightmap" id="256" ed:width="86">
        <path transform="translate(-14.5,22.68)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="257" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程代码执行</tspan>
        </text>
    </g>
    <g transform="translate(1125,1927.3)" ed:parentid="128" ed:height="20.5" ed:layout="rightmap" id="258" ed:width="134">
        <path transform="translate(-14.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="259" d="M-14.5,-12.4C-0,-12.4,-0.9,12.4,14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L134,20.5"/>
        <text class="st5">
            <tspan textLength="126" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Rsync未授权访问漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1165,1992.8)" ed:parentid="130" ed:height="20.5" ed:layout="rightmap" id="260" ed:width="99">
        <path transform="translate(-14.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="261" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">各种版本的漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1165,2022)" ed:parentid="130" ed:height="20.5" ed:layout="rightmap" id="262" ed:width="60">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="263" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(1165,2051.2)" ed:parentid="130" ed:height="20.5" ed:layout="rightmap" id="264" ed:width="60">
        <path transform="translate(-14.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="265" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程溢出</tspan>
        </text>
    </g>
    <g transform="translate(1141,2116.7)" ed:parentid="132" ed:height="20.5" ed:layout="rightmap" id="266" ed:width="73">
        <path transform="translate(-14.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="267" d="M-14.5,9.5C-0.7,9.5,0.6,-9.5,14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">各版本漏洞</tspan>
        </text>
    </g>
    <g transform="translate(1141,2145.9)" ed:parentid="132" ed:height="20.5" ed:layout="rightmap" id="268" ed:width="60">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="269" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(1141,2175.1)" ed:parentid="132" ed:height="20.5" ed:layout="rightmap" id="270" ed:width="73">
        <path transform="translate(-14.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="271" d="M-14.5,-19.7C1.5,-19.7,-4.5,19.7,14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">自定义函数</tspan>
        </text>
    </g>
    <g transform="translate(1117,2250.35)" ed:parentid="134" ed:height="20.5" ed:layout="rightmap" id="272" ed:width="73">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="273" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(1165,2335.35)" ed:parentid="136" ed:height="20.5" ed:layout="rightmap" id="274" ed:width="73">
        <path transform="translate(-14.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="275" d="M-14.5,-5.1C-1.7,-5.1,3,5.1,14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(493,2374.35)" ed:parentid="138" ed:height="20.5" ed:layout="leftmap" id="276" ed:width="73">
        <path transform="translate(87.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="277" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(562,2184.9)" ed:parentid="142" ed:height="20.5" ed:layout="leftmap" id="278" ed:width="60">
        <path transform="translate(74.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="279" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(549,2214.1)" ed:parentid="142" ed:height="20.5" ed:layout="leftmap" id="280" ed:width="73">
        <path transform="translate(87.5,8.08)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="281" d="M14.5,-12.4C0,-12.4,0.9,12.4,-14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">自定义函数</tspan>
        </text>
    </g>
    <g transform="translate(527,2061)" ed:parentid="144" ed:height="20.5" ed:layout="leftmap" id="282" ed:width="95">
        <path transform="translate(109.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="283" d="M14.5,9.5C0.7,9.5,-0.6,-9.5,-14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L95,20.5"/>
        <text class="st5">
            <tspan textLength="87" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">shift粘滞后门</tspan>
        </text>
    </g>
    <g transform="translate(562,2090.2)" ed:parentid="144" ed:height="20.5" ed:layout="leftmap" id="284" ed:width="60">
        <path transform="translate(74.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="285" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(549,2119.4)" ed:parentid="144" ed:height="20.5" ed:layout="leftmap" id="286" ed:width="73">
        <path transform="translate(87.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="287" d="M14.5,-19.7C-1.5,-19.7,4.5,19.7,-14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">自定义函数</tspan>
        </text>
    </g>
    <g transform="translate(562,1966.3)" ed:parentid="146" ed:height="20.5" ed:layout="leftmap" id="288" ed:width="60">
        <path transform="translate(74.5,22.68)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="289" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(536,1995.5)" ed:parentid="146" ed:height="20.5" ed:layout="leftmap" id="290" ed:width="86">
        <path transform="translate(100.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="291" d="M14.5,-12.4C0,-12.4,0.9,12.4,-14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程命令执行</tspan>
        </text>
    </g>
    <g transform="translate(346,1806.05)" ed:parentid="150" ed:height="20.5" ed:layout="leftmap" id="294" ed:width="60">
        <path transform="translate(74.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="295" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">用于提权</tspan>
        </text>
    </g>
    <g transform="translate(474,1672.4)" ed:parentid="152" ed:height="20.5" ed:layout="leftmap" id="296" ed:width="60">
        <path transform="translate(74.5,29.97)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="297" d="M14.5,9.5C0.7,9.5,-0.6,-9.5,-14.5,-9.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">权限提升</tspan>
        </text>
    </g>
    <g transform="translate(474,1701.6)" ed:parentid="152" ed:height="20.5" ed:layout="leftmap" id="298" ed:width="60">
        <path transform="translate(74.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="299" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">拒绝服务</tspan>
        </text>
    </g>
    <g transform="translate(474,1730.8)" ed:parentid="152" ed:height="20.5" ed:layout="leftmap" id="300" ed:width="60">
        <path transform="translate(74.5,0.78)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="301" d="M14.5,-19.7C-1.5,-19.7,4.5,19.7,-14.5,19.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">代码执行</tspan>
        </text>
    </g>
    <g transform="translate(504,1519.3)" ed:parentid="154" ed:height="20.5" ed:layout="leftmap" id="302" ed:width="86">
        <path transform="translate(100.5,37.28)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="303" d="M14.5,16.8C-0.9,16.8,3.1,-16.8,-14.5,-16.8" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码验证绕过</tspan>
        </text>
    </g>
    <g transform="translate(504,1548.5)" ed:parentid="154" ed:height="20.5" ed:layout="leftmap" id="304" ed:width="86">
        <path transform="translate(100.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="305" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">拒绝服务攻击</tspan>
        </text>
    </g>
    <g transform="translate(530,1577.7)" ed:parentid="154" ed:height="20.5" ed:layout="leftmap" id="306" ed:width="60">
        <path transform="translate(74.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="307" d="M14.5,-12.4C0,-12.4,0.9,12.4,-14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">权限提升</tspan>
        </text>
    </g>
    <g transform="translate(530,1606.9)" ed:parentid="154" ed:height="20.5" ed:layout="leftmap" id="308" ed:width="60">
        <path transform="translate(74.5,-6.53)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="309" d="M14.5,-27C-2.9,-27,7.8,27,-14.5,27" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(501,1424.6)" ed:parentid="156" ed:height="20.5" ed:layout="leftmap" id="310" ed:width="73">
        <path transform="translate(87.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="311" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(414,1453.8)" ed:parentid="156" ed:height="20.5" ed:layout="leftmap" id="312" ed:width="160">
        <path transform="translate(174.5,8.07)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="313" d="M14.5,-12.4C0,-12.4,0.9,12.4,-14.5,12.4" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L160,20.5"/>
        <text class="st5">
            <tspan textLength="152" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Redis服务器远程执行漏洞</tspan>
        </text>
    </g>
    <g transform="translate(450,1125.5)" ed:parentid="158" ed:height="20.5" ed:layout="leftmap" id="314" ed:width="60">
        <path transform="translate(74.5,73.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="315" d="M14.5,53.3C-5.7,53.3,14.3,-53.3,-14.5,-53.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(422,1154.7)" ed:parentid="158" ed:height="20.5" ed:layout="leftmap" id="316" ed:width="88">
        <path transform="translate(102.5,59.17)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="317" d="M14.5,38.7C-4.6,38.7,11.8,-38.7,-14.5,-38.7" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L88,20.5"/>
        <text class="st5">
            <tspan textLength="80" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Java反序列化</tspan>
        </text>
    </g>
    <g transform="translate(424,1183.9)" ed:parentid="158" ed:height="20.5" ed:layout="leftmap" id="318" ed:width="86">
        <path transform="translate(100.5,44.58)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="319" d="M14.5,24.1C-2.4,24.1,6.5,-24.1,-14.5,-24.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">任务文件泄露</tspan>
        </text>
    </g>
    <g transform="translate(411,1286.1)" ed:parentid="158" ed:height="20.5" ed:layout="leftmap" id="320" ed:width="99">
        <path transform="translate(113.5,-6.53)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="321" d="M14.5,-27C-2.9,-27,7.8,27,-14.5,27" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">管理面板弱口令</tspan>
        </text>
    </g>
    <g transform="translate(255,1213.1)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="334" ed:width="127">
        <path transform="translate(141.5,57)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="340" d="M14.5,36.5C-4.4,36.5,11.2,-36.5,-14.5,-36.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L127,20.5"/>
        <text class="st5">
            <tspan textLength="119" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">weblogic:weblogic</tspan>
        </text>
    </g>
    <g transform="translate(283,1242.3)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="335" ed:width="99">
        <path transform="translate(113.5,42.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="341" d="M14.5,21.9C-2,21.9,5.5,-21.9,-14.5,-21.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">system:system</tspan>
        </text>
    </g>
    <g transform="translate(213,1271.5)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="336" ed:width="169">
        <path transform="translate(183.5,27.8)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="342" d="M14.5,7.3C1.2,7.3,-1.8,-7.3,-14.5,-7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L169,20.5"/>
        <text class="st5">
            <tspan textLength="161" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">portaladmin:portaladmin</tspan>
        </text>
    </g>
    <g transform="translate(297,1300.7)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="337" ed:width="85">
        <path transform="translate(99.5,13.2)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="343" d="M14.5,-7.3C1.2,-7.3,-1.8,7.3,-14.5,7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L85,20.5"/>
        <text class="st5">
            <tspan textLength="77" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">guest:guest</tspan>
        </text>
    </g>
    <g transform="translate(255,1329.9)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="338" ed:width="127">
        <path transform="translate(141.5,-1.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="344" d="M14.5,-21.9C-2,-21.9,5.5,21.9,-14.5,21.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L127,20.5"/>
        <text class="st5">
            <tspan textLength="119" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">weblogic:admin123</tspan>
        </text>
    </g>
    <g transform="translate(234,1359.1)" ed:parentid="320" ed:height="20.5" ed:layout="leftmap" id="339" ed:width="148">
        <path transform="translate(162.5,-16)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="345" d="M14.5,-36.5C-4.4,-36.5,11.2,36.5,-14.5,36.5" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L148,20.5"/>
        <text class="st5">
            <tspan textLength="140" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">weblogic:weblogic123</tspan>
        </text>
    </g>
    <g transform="translate(523,782.6)" ed:parentid="160" ed:height="20.5" ed:layout="leftmap" id="346" ed:width="99">
        <path transform="translate(113.5,73.77)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="347" d="M14.5,53.3C-5.7,53.3,14.3,-53.3,-14.5,-53.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Apache/tomcat</tspan>
        </text>
    </g>
    <g transform="translate(579,884.8)" ed:parentid="160" ed:height="20.5" ed:layout="leftmap" id="348" ed:width="43">
        <path transform="translate(57.5,22.67)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="349" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L43,20.5"/>
        <text class="st5">
            <tspan textLength="35" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Nginx</tspan>
        </text>
    </g>
    <g transform="translate(579,957.8)" ed:parentid="160" ed:height="20.5" ed:layout="leftmap" id="350" ed:width="43">
        <path transform="translate(57.5,-13.83)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="351" d="M14.5,-34.3C-4.1,-34.3,10.5,34.3,-14.5,34.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L43,20.5"/>
        <text class="st5">
            <tspan textLength="35" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Resin</tspan>
        </text>
    </g>
    <g transform="translate(551,1030.8)" ed:parentid="160" ed:height="20.5" ed:layout="leftmap" id="352" ed:width="71">
        <path transform="translate(85.5,-50.33)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="353" d="M14.5,-70.8C-5.8,-70.8,14.5,70.8,-14.5,70.8" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L71,20.5"/>
        <text class="st5">
            <tspan textLength="63" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">GlassFish</tspan>
        </text>
    </g>
    <g transform="translate(434,738.8)" ed:parentid="346" ed:height="20.5" ed:layout="leftmap" id="354" ed:width="60">
        <path transform="translate(74.5,42.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="355" d="M14.5,21.9C-2,21.9,5.5,-21.9,-14.5,-21.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">解析漏洞</tspan>
        </text>
    </g>
    <g transform="translate(434,768)" ed:parentid="346" ed:height="20.5" ed:layout="leftmap" id="356" ed:width="60">
        <path transform="translate(74.5,27.8)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="357" d="M14.5,7.3C1.2,7.3,-1.8,-7.3,-14.5,-7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">目录遍历</tspan>
        </text>
    </g>
    <g transform="translate(408,797.2)" ed:parentid="346" ed:height="20.5" ed:layout="leftmap" id="358" ed:width="86">
        <path transform="translate(100.5,13.2)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="359" d="M14.5,-7.3C1.2,-7.3,-1.8,7.3,-14.5,7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">任意文件上传</tspan>
        </text>
    </g>
    <g transform="translate(434,826.4)" ed:parentid="346" ed:height="20.5" ed:layout="leftmap" id="360" ed:width="60">
        <path transform="translate(74.5,-1.4)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="361" d="M14.5,-21.9C-2,-21.9,5.5,21.9,-14.5,21.9" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">密码爆破</tspan>
        </text>
    </g>
    <g transform="translate(490,855.6)" ed:parentid="348" ed:height="20.5" ed:layout="leftmap" id="362" ed:width="60">
        <path transform="translate(74.5,35.1)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="363" d="M14.5,14.6C-0.5,14.6,2,-14.6,-14.5,-14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">整数溢出</tspan>
        </text>
    </g>
    <g transform="translate(464,884.8)" ed:parentid="348" ed:height="20.5" ed:layout="leftmap" id="364" ed:width="86">
        <path transform="translate(100.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="365" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">目录遍历下载</tspan>
        </text>
    </g>
    <g transform="translate(451,914)" ed:parentid="348" ed:height="20.5" ed:layout="leftmap" id="366" ed:width="99">
        <path transform="translate(113.5,5.9)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="367" d="M14.5,-14.6C-0.5,-14.6,2,14.6,-14.5,14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">文件型解析漏洞</tspan>
        </text>
    </g>
    <g transform="translate(490,943.2)" ed:parentid="350" ed:height="20.5" ed:layout="leftmap" id="368" ed:width="60">
        <path transform="translate(74.5,27.8)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="369" d="M14.5,7.3C1.2,7.3,-1.8,-7.3,-14.5,-7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">目录遍历</tspan>
        </text>
    </g>
    <g transform="translate(464,972.4)" ed:parentid="350" ed:height="20.5" ed:layout="leftmap" id="370" ed:width="86">
        <path transform="translate(100.5,13.2)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="371" d="M14.5,-7.3C1.2,-7.3,-1.8,7.3,-14.5,7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程文件读取</tspan>
        </text>
    </g>
    <g transform="translate(475,1001.6)" ed:parentid="352" ed:height="20.5" ed:layout="leftmap" id="374" ed:width="47">
        <path transform="translate(61.5,35.1)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="375" d="M14.5,14.6C-0.5,14.6,2,-14.6,-14.5,-14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L47,20.5"/>
        <text class="st5">
            <tspan textLength="39" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">弱口令</tspan>
        </text>
    </g>
    <g transform="translate(436,1030.8)" ed:parentid="352" ed:height="20.5" ed:layout="leftmap" id="376" ed:width="86">
        <path transform="translate(100.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="377" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">任意文件读取</tspan>
        </text>
    </g>
    <g transform="translate(462,1060)" ed:parentid="352" ed:height="20.5" ed:layout="leftmap" id="378" ed:width="60">
        <path transform="translate(74.5,5.9)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="379" d="M14.5,-14.6C-0.5,-14.6,2,14.6,-14.5,14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">认证绕过</tspan>
        </text>
    </g>
    <g transform="translate(565,644.1)" ed:parentid="162" ed:height="20.5" ed:layout="leftmap" id="380" ed:width="57">
        <path transform="translate(71.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="381" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L57,20.5"/>
        <text class="st5">
            <tspan textLength="49" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Jenkins</tspan>
        </text>
    </g>
    <g transform="translate(476,614.9)" ed:parentid="380" ed:height="20.5" ed:layout="leftmap" id="382" ed:width="60">
        <path transform="translate(74.5,35.1)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="383" d="M14.5,14.6C-0.5,14.6,2,-14.6,-14.5,-14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">口令爆破</tspan>
        </text>
    </g>
    <g transform="translate(463,644.1)" ed:parentid="380" ed:height="20.5" ed:layout="leftmap" id="384" ed:width="73">
        <path transform="translate(87.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="385" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(476,673.3)" ed:parentid="380" ed:height="20.5" ed:layout="leftmap" id="386" ed:width="60">
        <path transform="translate(74.5,5.9)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="387" d="M14.5,-14.6C-0.5,-14.6,2,14.6,-14.5,14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L60,20.5"/>
        <text class="st5">
            <tspan textLength="52" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">反序列化</tspan>
        </text>
    </g>
    <g transform="translate(481,539.65)" ed:parentid="164" ed:height="20.5" ed:layout="leftmap" id="388" ed:width="141">
        <path transform="translate(155.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="389" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L141,20.5"/>
        <text class="st5">
            <tspan textLength="133" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">ApacheGroupActiveMQ</tspan>
        </text>
    </g>
    <g transform="translate(366,539.65)" ed:parentid="388" ed:height="20.5" ed:layout="leftmap" id="390" ed:width="86">
        <path transform="translate(100.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="391" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程命令执行</tspan>
        </text>
    </g>
    <g transform="translate(565,454.65)" ed:parentid="166" ed:height="20.5" ed:layout="leftmap" id="392" ed:width="57">
        <path transform="translate(71.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="393" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L57,20.5"/>
        <text class="st5">
            <tspan textLength="49" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">ganglia</tspan>
        </text>
    </g>
    <g transform="translate(463,454.65)" ed:parentid="392" ed:height="20.5" ed:layout="leftmap" id="394" ed:width="73">
        <path transform="translate(87.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="395" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L73,20.5"/>
        <text class="st5">
            <tspan textLength="65" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">未授权访问</tspan>
        </text>
    </g>
    <g transform="translate(544,369.65)" ed:parentid="168" ed:height="20.5" ed:layout="leftmap" id="396" ed:width="78">
        <path transform="translate(92.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="397" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L78,20.5"/>
        <text class="st5">
            <tspan textLength="70" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">Supervisor</tspan>
        </text>
    </g>
    <g transform="translate(429,369.65)" ed:parentid="396" ed:height="20.5" ed:layout="leftmap" id="398" ed:width="86">
        <path transform="translate(100.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="399" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L86,20.5"/>
        <text class="st5">
            <tspan textLength="78" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">远程命令执行</tspan>
        </text>
    </g>
    <g transform="translate(539,265.2)" ed:parentid="170" ed:height="20.5" ed:layout="leftmap" id="400" ed:width="43">
        <path transform="translate(57.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="401" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L43,20.5"/>
        <text class="st5">
            <tspan textLength="35" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">jboss</tspan>
        </text>
    </g>
    <g transform="translate(274,236)" ed:parentid="400" ed:height="20.5" ed:layout="leftmap" id="402" ed:width="236">
        <path transform="translate(250.5,35.1)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="403" d="M14.5,14.6C-0.5,14.6,2,-14.6,-14.5,-14.6" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L236,20.5"/>
        <text class="st5">
            <tspan textLength="228" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">JBOSSAS5.x,6.x反序列化命令执行漏洞</tspan>
        </text>
    </g>
    <g transform="translate(411,279.8)" ed:parentid="400" ed:height="20.5" ed:layout="leftmap" id="404" ed:width="99">
        <path transform="translate(113.5,13.2)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="405" d="M14.5,-7.3C1.2,-7.3,-1.8,7.3,-14.5,7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L99,20.5"/>
        <text class="st5">
            <tspan textLength="91" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">管理面板弱口令</tspan>
        </text>
    </g>
    <g transform="translate(297,265.2)" ed:parentid="404" ed:height="20.5" ed:layout="leftmap" id="406" ed:width="85">
        <path transform="translate(99.5,27.8)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="407" d="M14.5,7.3C1.2,7.3,-1.8,-7.3,-14.5,-7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L85,20.5"/>
        <text class="st5">
            <tspan textLength="77" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">jboss:jboss</tspan>
        </text>
    </g>
    <g transform="translate(297,294.4)" ed:parentid="404" ed:height="20.5" ed:layout="leftmap" id="408" ed:width="85">
        <path transform="translate(99.5,13.2)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="409" d="M14.5,-7.3C1.2,-7.3,-1.8,7.3,-14.5,7.3" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L85,20.5"/>
        <text class="st5">
            <tspan textLength="77" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">admin:admin</tspan>
        </text>
    </g>
    <g transform="translate(543,160.75)" ed:parentid="172" ed:height="20.5" ed:layout="leftmap" id="410" ed:width="71">
        <path transform="translate(85.5,15.38)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="411" d="M14.5,-5.1C1.7,-5.1,-3,5.1,-14.5,5.1" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L71,20.5"/>
        <text class="st5">
            <tspan textLength="63" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">memcached</tspan>
        </text>
    </g>
    <g transform="translate(151,160.75)" ed:parentid="410" ed:height="20.5" ed:layout="leftmap" id="412" ed:width="363">
        <path transform="translate(377.5,20.5)" stroke="#4486b1" stroke-linejoin="round" fill="none" id="413" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round"/>
        <path stroke="#4486b1" stroke-linejoin="round" fill="none" d="M0,20.5L363,20.5"/>
        <text class="st5">
            <tspan textLength="355" style="white-space:pre" lengthAdjust="spacing" y="15.8" x="4">memcached反射ddos攻击，检查版本及是否开放udp11211端口</tspan>
        </text>
    </g>
    <g transform="translate(789,1246.8)" ed:topictype="mainidea" ed:height="62" ed:layout="map" id="101" ed:width="129">
        <path stroke="#4486b1" stroke-linejoin="round" fill="#eaf3fc" d="M8,0L121,0C125.4,0,129,3.6,129,8L129,54C129,58.4,125.4,62,121,62L8,62C3.6,62,0,58.4,0,54L0,8C0,3.6,3.6,0,8,0z" stroke-width="3"/>
        <text class="st6">
            <tspan textLength="76" style="white-space:pre" lengthAdjust="spacing" y="38.5" x="27">端口漏洞</tspan>
        </text>
    </g>
    <g transform="translate(919,1271.8)" ed:togtopicid="101">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1073,281.85)" ed:togtopicid="102">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1073,464.15)" ed:togtopicid="104">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1097,573.45)" ed:togtopicid="106">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1137,741.15)" ed:togtopicid="108">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1145,952.65)" ed:togtopicid="110">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1081,1086.3)" ed:togtopicid="112">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1161,1176.15)" ed:togtopicid="114">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1161,1285.45)" ed:togtopicid="116">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1233,1394.75)" ed:togtopicid="118">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1089,1484.6)" ed:togtopicid="120">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1089,1589.05)" ed:togtopicid="122">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1249,1698.35)" ed:togtopicid="124">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1145,1807.65)" ed:togtopicid="126">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1097,1916.95)" ed:togtopicid="128">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1137,2026.25)" ed:togtopicid="130">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1113,2150.15)" ed:togtopicid="132">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1089,2254.6)" ed:togtopicid="134">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1137,2339.6)" ed:togtopicid="136">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(582,2378.6)" ed:togtopicid="138">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,2203.75)" ed:togtopicid="142">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,2094.45)" ed:togtopicid="144">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,1985.15)" ed:togtopicid="146">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(422,1810.3)" ed:togtopicid="150">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(550,1705.85)" ed:togtopicid="152">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(606,1567.35)" ed:togtopicid="154">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(590,1443.45)" ed:togtopicid="156">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(526,1246.55)" ed:togtopicid="158">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,903.65)" ed:togtopicid="160">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,648.35)" ed:togtopicid="162">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,543.9)" ed:togtopicid="164">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,458.9)" ed:togtopicid="166">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(638,373.9)" ed:togtopicid="168">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(598,269.45)" ed:togtopicid="170">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(630,165)" ed:togtopicid="172">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(398,1290.35)" ed:togtopicid="320">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(510,786.85)" ed:togtopicid="346">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(566,889.05)" ed:togtopicid="348">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(566,962.05)" ed:togtopicid="350">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(538,1035.05)" ed:togtopicid="352">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(552,648.35)" ed:togtopicid="380">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(468,543.9)" ed:togtopicid="388">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(552,458.9)" ed:togtopicid="392">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(531,373.9)" ed:togtopicid="396">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(526,269.45)" ed:togtopicid="400">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(398,284.05)" ed:togtopicid="404">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(530,165)" ed:togtopicid="410">
        <use xlink:href="#minus"/>
    </g>
    <symbol id="plus">
        <path fill="url(#lg2)" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6z"/>
        <path stroke="#46a000" fill="none" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6zM3,6L9,6M6,3L6,9"/>
    </symbol>
    <symbol id="minus">
        <path fill="url(#lg2)" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6z"/>
        <path stroke="#46a000" fill="none" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6zM3,6L9,6"/>
    </symbol>
</svg>
</div>
        <div id="copyright">Created With  <a href="https://www.edrawsoft.com/" target="_blank" title="edrawsoft">MindMaster</a></div>
      </div>
    </div>
    <script>eval(atob('dmFyIG11YT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsNCnZhciB1YT0obXVhLmluZGV4T2YoJ3J2OjExJykrbXVhLmluZGV4T2YoJ01TSUUnKSk+PTA7DQpOdW1iZXIucHJvdG90eXBlLnRvc3VpdHN2Zz1mdW5jdGlvbiAoKSB7DQogICAgdmFyIG51bT10aGlzLnZhbHVlT2YoKTsNCiAgICBpZihudW0lMT09PTApew0KICAgICAgICByZXR1cm4gbnVtKzAuNQ0KICAgIH1lbHNlIHJldHVybiBudW07DQp9Ow0KTnVtYmVyLnByb3RvdHlwZS5wbHVzej1mdW5jdGlvbigpIHsNCiAgICB2YXIgbnVtPXRoaXMudmFsdWVPZigpOw0KICAgIHJldHVybiBudW08MTA/JzAnK251bTpudW07DQp9Ow0KZnVuY3Rpb24gcGFyc2VEYXRlKG51bSkgew0KICAgIHZhciBkYXRlID0gbmV3IERhdGUobnVtKTsNCiAgICB2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJzsNCiAgICB2YXIgTSA9IChkYXRlLmdldE1vbnRoKCkrMSkucGx1c3ooKSArICctJzsNCiAgICB2YXIgRCA9IGRhdGUuZ2V0RGF0ZSgpLnBsdXN6KCkgKyAnICc7DQogICAgdmFyIGggPSBkYXRlLmdldEhvdXJzKCkucGx1c3ooKSArICc6JzsNCiAgICB2YXIgbW0gPSBkYXRlLmdldE1pbnV0ZXMoKS5wbHVzeigpICsgJzonOw0KICAgIHZhciBzID0gZGF0ZS5nZXRTZWNvbmRzKCkucGx1c3ooKTsNCiAgICByZXR1cm4gWStNK0QraCttbStzOw0KfQ0KLy8tLXByZWRlZmluZWQNCi8vY29tbWVudC0tDQp2YXIgY29tbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZz5nW2VkXFw6Y29tbWVudF0nKTsNCmZ1bmN0aW9uIGdldGN3aChwb3B1cCkgew0KICAgIGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3N2ZycpWzBdLmFwcGVuZENoaWxkKHBvcHVwKTsNCiAgICB2YXIgdz1wb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsNCiAgICB2YXIgaD1wb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7DQogICAgcmV0dXJuIFt3LGhdDQp9DQpmb3IodmFyIGk9MDtpPGNvbW1lbnRzLmxlbmd0aDtpKyspew0KICAgIHZhciBwb3B1cD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnZycpOw0KICAgIHZhciBob3Zlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgIHZhciBvbGluZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbCcsJyNjZGNkZmYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd5JywnMCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywnMTYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywnMTYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2ZpbGwtb3BhY2l0eScsJzAuNicpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJyxjb21tZW50c1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKTsNCiAgICBob3Zlci5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICBjb21tZW50c1tpXS5hcHBlbmRDaGlsZChob3Zlcik7DQogICAgdmFyIGE9SlNPTi5wYXJzZShjb21tZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ2VkOmNvbW1lbnQnKSk7DQogICAgdmFyIGhlaWdodD0wOw0KICAgIHZhciBjYXJyPVtdOw0KICAgIGZvcih2YXIgaj0wO2o8YS5sZW5ndGg7aisrKXsNCiAgICAgICAgdmFyIHN0YW1wPU51bWJlcihhW2pdLkRhdGUpKjEwMDA7DQogICAgICAgIHZhciB0aW1lPXBhcnNlRGF0ZShzdGFtcCk7DQogICAgICAgIHZhciBuYW1lPWFbal0uTmFtZTsNCiAgICAgICAgdmFyIG1lc3NhZ2U9YVtqXS5NZXNzYWdlOw0KICAgICAgICB2YXIgbWVzc2FnZUFycj1tZXNzYWdlLnNwbGl0KC9cbi8pOw0KICAgICAgICB2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnZycpOw0KICAgICAgICB2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBuLnNldEF0dHJpYnV0ZSgneCcsNSk7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCd5JywxMik7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCdmaWxsJywnIzAwNmVmZicpOw0KICAgICAgICBuLnRleHRDb250ZW50PW5hbWUrJ++8mic7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCdmb250LXNpemUnLCcxMicpOw0KICAgICAgICB0LnNldEF0dHJpYnV0ZSgneCcsMjAwKTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ3knLDEyKTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjOTY5Njk2Jyk7DQogICAgICAgIHQudGV4dENvbnRlbnQ9dGltZTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2ZvbnQtc2l6ZScsJzEwJyk7DQogICAgICAgIG0uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoMjAsMjcpJyk7DQogICAgICAgIG0uc2V0QXR0cmlidXRlKCdmb250LXNpemUnLCcxMicpOw0KICAgICAgICBmb3IodmFyIGs9MDtrPG1lc3NhZ2VBcnIubGVuZ3RoO2srKyl7DQogICAgICAgICAgICB2YXIgdHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ3RzcGFuJyk7DQogICAgICAgICAgICB0cy5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgICAgICAgICB0cy5zZXRBdHRyaWJ1dGUoJ3knLGsqMTYpOw0KICAgICAgICAgICAgdHMudGV4dENvbnRlbnQ9bWVzc2FnZUFycltrXTsNCiAgICAgICAgICAgIG0uYXBwZW5kQ2hpbGQodHMpOw0KICAgICAgICB9DQogICAgICAgIG8uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoMCwnK2hlaWdodCsnKScpOw0KICAgICAgICBvLmFwcGVuZENoaWxkKG4pOw0KICAgICAgICBvLmFwcGVuZENoaWxkKHQpOw0KICAgICAgICBvLmFwcGVuZENoaWxkKG0pOw0KICAgICAgICBjYXJyLnB1c2gobyk7DQogICAgICAgIHBvcHVwLmFwcGVuZENoaWxkKG8pOw0KICAgICAgICBoZWlnaHQ9KG1lc3NhZ2VBcnIubGVuZ3RoKzEpKjE2K2hlaWdodDsNCiAgICB9DQogICAgdmFyIHdhcnI9Z2V0Y3doKHBvcHVwKTsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgb2xpbmUuc2V0QXR0cmlidXRlKCd5JywnMCcpOw0KICAgIHZhciBvdz13YXJyWzBdKzEwLjU7DQogICAgdmFyIG9oPXdhcnJbMV0rMzsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3dpZHRoJyxvdyk7DQogICAgb2xpbmUuc2V0QXR0cmlidXRlKCdoZWlnaHQnLG9oKTsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCd3aGl0ZScpOw0KICAgIG9saW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywnIzY1NjU2NScpOw0KICAgIHBvcHVwLmFwcGVuZENoaWxkKG9saW5lKTsNCiAgICB2YXIgbD1jYXJyLmxlbmd0aDsNCiAgICB3aGlsZShsLS0pew0KICAgICAgICBwb3B1cC5hcHBlbmRDaGlsZChjYXJyW2xdKTsNCiAgICB9DQogICAgcG9wdXAub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9Ow0KICAgIHBvcHVwLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgfTsNCiAgICB2YXIgY3M9Y29tbWVudHNbaV0ucXVlcnlTZWxlY3RvcigndXNlJykuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKS5tYXRjaCgvXCgoXFMqfFxTKlxzXFMqKVwpLylbMV0uc3BsaXQoLyB8LC8pOw0KICAgIHZhciBwcz1jb21tZW50c1tpXS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICB2YXIgeD1wYXJzZUZsb2F0KGNzWzBdKStwYXJzZUZsb2F0KHBzWzBdKTsNCiAgICB2YXIgeT1wYXJzZUZsb2F0KHBzWzFdKTsNCiAgICB4PXgudG9zdWl0c3ZnKCk7DQogICAgeT15LnRvc3VpdHN2ZygpOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnY29tbWVudCcsJycpOw0KICAgIHBvcHVwLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnZWQ6Y29tbWVudGlkJyxjb21tZW50c1tpXS5wYXJlbnROb2RlLmlkKTsNCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3ZnLWNvbnRhaW5lciA+IHN2ZycpLmFwcGVuZENoaWxkKHBvcHVwKTsNCiAgICBjb21tZW50c1tpXS5vbm1vdXNlb3Zlcj1mdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBjb21tZW50aWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDpjb21tZW50aWQ9JyIrY29tbWVudGlkKyInXVtjb21tZW50XSIpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9Ow0KICAgIGNvbW1lbnRzW2ldLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgY29tbWVudGlkPXRoaXMucGFyZW50Tm9kZS5pZDsNCi8vICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7DQogICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6Y29tbWVudGlkPSciK2NvbW1lbnRpZCsiJ11bY29tbWVudF0iKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9DQp9DQovLy0tY29tbWVudA0KLy9ub3RlLS0NCmlmKCF1YSl7DQogICAgdmFyIG5vdGVzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2c+Z1tlZFxcOm5vdGVdJyk7DQogICAgZnVuY3Rpb24gZ2V0d2gocyxwKSB7DQogICAgICAgIHZhciBtYWlucD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgbWFpbnAuc3R5bGUuY3NzVGV4dD1zOw0KICAgICAgICBtYWlucC5zdHlsZS5kaXNwbGF5PSdpbmxpbmUtYmxvY2snOw0KICAgICAgICBtYWlucC5pbm5lckhUTUw9cDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtYWlucCk7DQogICAgICAgIHZhciB3PW1haW5wLmNsaWVudFdpZHRoOw0KICAgICAgICB2YXIgaD1tYWlucC5jbGllbnRIZWlnaHQ7DQogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobWFpbnApOw0KICAgICAgICByZXR1cm4gW3csaF0NCiAgICB9DQogICAgZm9yKHZhciBpPTA7aTxub3Rlcy5sZW5ndGg7aSsrKXsNCiAgICAgICAgdmFyIGE9bm90ZXNbaV0uZ2V0QXR0cmlidXRlKCdlZDpub3RlJyk7DQogICAgICAgIHZhciBtYWlucD1hLm1hdGNoKC88cChbXFNcc10qKTxcL3A+L2cpWzBdOw0KICAgICAgICB2YXIgbWFpbnM9YS5tYXRjaCgvc3R5bGU9IiguKj8pIi8pWzFdOw0KICAgICAgICB2YXIgb3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCdnJyk7DQogICAgICAgIHZhciBvbGluZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgICAgICB2YXIgcG9wdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ2ZvcmVpZ25PYmplY3QnKTsNCiAgICAgICAgdmFyIGhvdmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCdyZWN0Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbCcsJyNjZGNkZmYnKTsNCiAgICAgICAgaG92ZXIuc2V0QXR0cmlidXRlKCd4JywnMCcpOw0KICAgICAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3knLCcwJyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywnMTYnKTsNCiAgICAgICAgaG92ZXIuc2V0QXR0cmlidXRlKCd3aWR0aCcsJzE2Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbC1vcGFjaXR5JywnMC42Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJyxub3Rlc1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKTsNCiAgICAgICAgaG92ZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIG5vdGVzW2ldLmFwcGVuZENoaWxkKGhvdmVyKTsNCiAgICAgICAgcG9wdXAuc3R5bGUuY3NzVGV4dD1tYWluczsNCiAgICAgICAgcG9wdXAuaW5uZXJIVE1MPW1haW5wOw0KICAgICAgICB2YXIgd2g9Z2V0d2gobWFpbnMsbWFpbnApOw0KICAgICAgICBwb3B1cC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJyx3aFswXSsxNik7DQogICAgICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnaGVpZ2h0Jyx3aFsxXSs4KTsNCiAgICAgICAgcG9wdXAuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoOCw0KScpOw0KICAgICAgICBwb3B1cC5zdHlsZS50ZXh0QWxpZ249J2xlZnQnOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgICAgIG9saW5lLnNldEF0dHJpYnV0ZSgneScsJzAnKTsNCiAgICAgICAgb2xpbmUuc2V0QXR0cmlidXRlKCd3aWR0aCcsd2hbMF0rMTYpOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsd2hbMV0rOCk7DQogICAgICAgIG9saW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywnI2EyN2EwMCcpOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjZmZlNzlkJyk7DQogICAgICAgIG91dC5hcHBlbmRDaGlsZChvbGluZSk7DQogICAgICAgIG91dC5hcHBlbmRDaGlsZChwb3B1cCk7DQogICAgICAgIG91dC5zZXRBdHRyaWJ1dGUoJ25vdGUnLCcnKTsNCiAgICAgICAgb3V0LnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICBvdXQuc2V0QXR0cmlidXRlKCdlZDpub3RlaWQnLG5vdGVzW2ldLnBhcmVudE5vZGUuaWQpOw0KICAgICAgICBvdXQub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgICAgIH07DQogICAgICAgIG91dC5vbm1vdXNlb3V0PWZ1bmN0aW9uICgpIHsNCi8vICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uID8gd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZVJhbmdlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZSk6ZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7DQoNCiAgICAgICAgICAgIHRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIH07DQogICAgICAgIHZhciBjcz1ub3Rlc1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC9cKChcUyp8XFMqXHNcUyopXCkvKVsxXS5zcGxpdCgvIHwsLyk7DQogICAgICAgIHZhciBwcz1ub3Rlc1tpXS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICAgICAgdmFyIHg9cGFyc2VGbG9hdChjc1swXSkrcGFyc2VGbG9hdChwc1swXSk7DQogICAgICAgIHZhciB5PXBhcnNlRmxvYXQocHNbMV0pOw0KICAgICAgICB4PXgudG9zdWl0c3ZnKCk7DQogICAgICAgIHk9eS50b3N1aXRzdmcoKTsNCiAgICAgICAgb3V0LnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3ZnLWNvbnRhaW5lciA+IHN2ZycpLmFwcGVuZENoaWxkKG91dCk7DQogICAgICAgIG5vdGVzW2ldLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBub3RlaWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdyZWN0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOm5vdGVpZD0nIitub3RlaWQrIiddW25vdGVdIikuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICB9Ow0KICAgICAgICBub3Rlc1tpXS5vbm1vdXNlb3V0PWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBub3RlaWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KLy8gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsNCiAgICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOm5vdGVpZD0nIitub3RlaWQrIiddW25vdGVdIikuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIH0NCiAgICB9DQp9ZWxzZXsNCiAgICBjb25zb2xlLmxvZygn5oqx5q2J77yMSUXmtY/op4jlmajkuI3mlK/mjIFub3Rl6Kej5p6Q77yM6K+35L2/55So5YW25LuW5YaF5qC45rWP6KeI5Zmo44CC6LCi6LCi77yBJykNCn0NCi8vLS1ub3RlDQovL2h5cGVybGluay0tDQp2YXIgbGlua3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZz5nW2VkXFw6aHlwZXJsaW5rXScpOw0KZnVuY3Rpb24gZ2V0bWF4bGVuKGFycixicnIpIHsNCiAgICB2YXIgbD0wOw0KICAgIHZhciBsbD0wOw0KICAgIGZvcih2YXIgaj0wO2o8YXJyLmxlbmd0aDtqKyspew0KICAgICAgICB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBpZighaXNOYU4obGlua2FycltqXSkpew0KICAgICAgICAgICAgZS50ZXh0Q29udGVudD0nUGFnZS0nK2FycltqXTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgICAgICBlLnRleHRDb250ZW50PWFycltqXTsNCiAgICAgICAgfQ0KICAgICAgICBlLnN0eWxlLmZvbnRTaXplPScxMnB4JzsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0uYXBwZW5kQ2hpbGQoZSk7DQogICAgICAgIHZhciBldz1lLmdldEJCb3goKS53aWR0aDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0ucmVtb3ZlQ2hpbGQoZSk7DQogICAgICAgIHZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCd0ZXh0Jyk7DQogICAgICAgIGgudGV4dENvbnRlbnQ9YnJyW2pdOw0KICAgICAgICBoLnN0eWxlLmZvbnRTaXplPScxMnB4JzsNCiAgICAgICAgaC5zdHlsZS5mb250V2VpZ2h0PSdib2xkJzsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0uYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIHZhciBodz1oLmdldEJCb3goKS53aWR0aDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0ucmVtb3ZlQ2hpbGQoaCk7DQogICAgICAgIGw9ZXc+aHc/ZXc6aHc7DQogICAgICAgIGxsPWw+bGw/bDpsbDsNCiAgICB9DQogICAgcmV0dXJuIGxsOw0KfQ0KZm9yKHZhciBpPTA7aTxsaW5rcy5sZW5ndGg7aSsrKXsNCiAgICB2YXIgcG9wdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ2cnKTsNCiAgICB2YXIgaG92ZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ3JlY3QnKTsNCiAgICB2YXIgZGVzY2Fycj1bXTsNCiAgICB2YXIgbGlua2Fycj1bXTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjY2RjZGZmJyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd4JywnMCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgneScsJzAnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsJzE2Jyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd3aWR0aCcsJzE2Jyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCdmaWxsLW9wYWNpdHknLCcwLjYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsbGlua3NbaV0ucXVlcnlTZWxlY3RvcigndXNlJykuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKSk7DQogICAgaG92ZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgbGlua3NbaV0uYXBwZW5kQ2hpbGQoaG92ZXIpOw0KICAgIC8vIGNvbnNvbGUubG9nKGxpbmtzW2ldLmdldEF0dHJpYnV0ZSgnZWQ6aHlwZXJsaW5rJykpOw0KICAgIHZhciBhPUpTT04ucGFyc2UobGlua3NbaV0uZ2V0QXR0cmlidXRlKCdlZDpoeXBlcmxpbmsnKSk7DQogICAgdmFyIGNzPWxpbmtzW2ldLnF1ZXJ5U2VsZWN0b3IoJ3VzZScpLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICB2YXIgcHM9bGlua3NbaV0ucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC9cKChcUyp8XFMqXHNcUyopXCkvKVsxXS5zcGxpdCgvIHwsLyk7DQogICAgdmFyIHg9cGFyc2VGbG9hdChjc1swXSkrcGFyc2VGbG9hdChwc1swXSk7DQogICAgdmFyIHk9cGFyc2VGbG9hdChwc1sxXSk7DQogICAgeD14LnRvc3VpdHN2ZygpOw0KICAgIHk9eS50b3N1aXRzdmcoKTsNCiAgICB2YXIgYWw9YS5sZW5ndGg7DQogICAgZm9yKHZhciBqPTA7ajxhbDtqKyspew0KICAgICAgICBsaW5rYXJyLnB1c2goYVtqXS5saW5rKTsNCiAgICAgICAgZGVzY2Fyci5wdXNoKGFbal0uZGVzYyk7DQogICAgfQ0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgIHZhciBtYXg9Z2V0bWF4bGVuKGxpbmthcnIsZGVzY2Fycik7DQogICAgZm9yKHZhciBrPTA7azxhbDtrKyspew0KICAgICAgICB2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnYScpOw0KICAgICAgICB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgICAgICB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBpZihpc05hTihsaW5rYXJyW2tdKSl7DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgnaHJlZicsbGlua2FycltrXSk7DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywnX2JsYW5rJyk7DQogICAgICAgICAgICBlLnRleHRDb250ZW50PWxpbmthcnJba107DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgZS50ZXh0Q29udGVudD0nUGFnZS0nK2xpbmthcnJba107DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnK2xpbmthcnJba10pOw0KICAgICAgICB9DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCd3aWR0aCcsbWF4KzEwKTsNCiAgICAgICAgZC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsJzMzJyk7DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCdzdHJva2UnLCcjOTk5OTk5Jyk7DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCdmaWxsJywnd2hpdGUnKTsNCiAgICAgICAgZC5zZXRBdHRyaWJ1dGUoJ3knLDMzKmspOw0KICAgICAgICBmLnRleHRDb250ZW50PWRlc2NhcnJba107DQogICAgICAgIGYuc3R5bGUuZm9udFNpemU9JzEycHgnOw0KICAgICAgICBmLnN0eWxlLmZvbnRXZWlnaHQ9J2JvbGQnOw0KICAgICAgICBmLnNldEF0dHJpYnV0ZSgneCcsNSk7DQogICAgICAgIGYuc2V0QXR0cmlidXRlKCd5JywzMyprKzEyKTsNCiAgICAgICAgZS5zdHlsZS5mb250U2l6ZT0nMTJweCc7DQogICAgICAgIGUuc2V0QXR0cmlidXRlKCd5JywzMyprKzI4KTsNCiAgICAgICAgZS5zZXRBdHRyaWJ1dGUoJ3gnLDUpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGQpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGYpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGUpOw0KICAgICAgICBjLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmZpbGw9JyNlMWUxZmYnDQogICAgICAgIH07DQogICAgICAgIGMub25tb3VzZW91dD1mdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5maWxsPSd3aGl0ZScNCiAgICAgICAgfTsNCiAgICAgICAgcG9wdXAuYXBwZW5kQ2hpbGQoYyk7DQogICAgfQ0KICAgIHBvcHVwLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnaHlwZXJsaW5rJywnJyk7DQogICAgcG9wdXAuc2V0QXR0cmlidXRlKCdlZDpsaW5raWQnLGxpbmtzW2ldLnBhcmVudE5vZGUuaWQpOw0KICAgIHBvcHVwLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgfTsNCiAgICBwb3B1cC5vbmNsaWNrPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9Ow0KICAgIHBvcHVwLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIH07DQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N2Zy1jb250YWluZXIgPiBzdmcnKS5hcHBlbmRDaGlsZChwb3B1cCk7DQogICAgbGlua3NbaV0ub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgbGlua2lkPXRoaXMucGFyZW50Tm9kZS5pZDsNCiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdyZWN0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6bGlua2lkPSciK2xpbmtpZCsiJ11baHlwZXJsaW5rXSIpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9DQogICAgbGlua3NbaV0ub25tb3VzZW91dD1mdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBsaW5raWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOmxpbmtpZD0nIitsaW5raWQrIiddW2h5cGVybGlua10iKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9DQp9DQovLy0taHlwZXJsaW5rDQovL2luaXRpYWxpemUtLQ0KdmFyIHNoYXBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2dbZWRcXDp0b2d0b3BpY2lkXScpOw0KdmFyIG1JZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdnW2VkXFw6dG9waWN0eXBlXScpOw0KdmFyIGRhdGFUcmVlPXt9Ow0KdmFyIGV4dHJhUmVsYT17fTsNCnZhciBjaGVja0lEPScnOw0KZm9yKHZhciBpPTA7aTxtSWQubGVuZ3RoO2krKyl7DQogICAgdmFyIHR5cGU9bUlkW2ldLmdldEF0dHJpYnV0ZSgnZWQ6dG9waWN0eXBlJyk7DQogICAgdmFyIHNpZD1tSWRbaV0uaWQ7DQogICAgaWYodHlwZSE9PSdjYWxsb3V0Jyl7DQogICAgICAgIGluaXQoc2lkLGRhdGFUcmVlKQ0KICAgIH0NCn0NCmZ1bmN0aW9uIGluaXQoaWQsIG9iaikgew0KICAgIHZhciBjaGlsZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6cGFyZW50aWQ9JyIgKyBpZCArICInXTpub3QoW2VkXFw6dG9waWN0eXBlXSkiKTsNCiAgICB2YXIgY2FsbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6cGFyZW50aWQ9JyIgKyBpZCArICInXVtlZFxcOnRvcGljdHlwZV0iKTsNCiAgICB2YXIgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInBhdGhbZWRcXDpwYXJlbnRpZCo9JyIgKyBpZCArICInXVtlZFxcOnR5cGU9J3N1bW1hcnknXSIpOw0KICAgIHZhciBib3VuZGFyeT0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgicGF0aFtlZFxcOnBhcmVudGlkKj0nIiArIGlkICsgIiddW2VkXFw6dHlwZT0nYm91bmRhcnknXSIpOw0KICAgIHZhciByZWxhZnJvbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6ZnJvbWlkKj0nIiArIGlkICsgIiddW2VkXFw6dHlwZT0ncmVsYXRpb24nXSIpOw0KICAgIHZhciByZWxhdG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZ1tlZFxcOnRvaWQqPSciICsgaWQgKyAiJ11bZWRcXDp0eXBlPSdyZWxhdGlvbiddIik7DQogICAgb2JqWyJtIiArIGlkXSA9IHt9Ow0KICAgIHZhciB0eXBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmdldEF0dHJpYnV0ZSgnZWQ6dG9waWN0eXBlJyk7DQogICAgdmFyIGl3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOndpZHRoJyk7DQogICAgdmFyIGloPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOmhlaWdodCcpOw0KICAgIGlmICh0eXBlKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0udHlwZSA9IHR5cGU7DQogICAgfQ0KICAgIGlmKGl3JiZpaCl7DQogICAgICAgIG9ialsibSIgKyBpZF0ud2lkdGggPWl3Ow0KICAgICAgICBvYmpbIm0iICsgaWRdLmhlaWdodCA9aWg7DQogICAgfQ0KICAgIGlmIChyZWxhZnJvbS5sZW5ndGggIT09IDApIHsNCiAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhZnJvbSA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbGFmcm9tLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgaW5kZXhpZCA9IHJlbGFmcm9tW2ldLmlkOw0KICAgICAgICAgICAgdmFyIHRvaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbmRleGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOnRvaWQnKTsNCiAgICAgICAgICAgIGlmIChleHRyYVJlbGFbaW5kZXhpZF0gPT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtpbmRleGlkXSA9IHsNCiAgICAgICAgICAgICAgICAgICAgaWQ6IGluZGV4aWQsDQogICAgICAgICAgICAgICAgICAgIGZyb21pZDogaWQsDQogICAgICAgICAgICAgICAgICAgIHRvaWQ6IHRvaWQsDQogICAgICAgICAgICAgICAgICAgIGlzQzogZmFsc2UNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhZnJvbVtpbmRleGlkXT17fTsNCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0ucmVsYWZyb20uZGlzcGxheT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnPydibG9jayc6J25vbmUnOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmIChyZWxhdG8ubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0ucmVsYXRvID0ge307DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVsYXRvLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgaW5kZXhpZD1yZWxhdG9baV0uaWQ7DQogICAgICAgICAgICB2YXIgZnJvbWlkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGluZGV4aWQpLmdldEF0dHJpYnV0ZSgnZWQ6ZnJvbWlkJyk7DQogICAgICAgICAgICBpZihleHRyYVJlbGFbaW5kZXhpZF0gPT09IHVuZGVmaW5lZCl7DQogICAgICAgICAgICAgICAgZXh0cmFSZWxhW2luZGV4aWRdPXsNCiAgICAgICAgICAgICAgICAgICAgaWQ6aW5kZXhpZCwNCiAgICAgICAgICAgICAgICAgICAgZnJvbWlkOmZyb21pZCwNCiAgICAgICAgICAgICAgICAgICAgdG9pZDppZCwNCiAgICAgICAgICAgICAgICAgICAgaXNDOmZhbHNlDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0ucmVsYXRvW2luZGV4aWRdPXt9Ow0KICAgICAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhdG8uZGlzcGxheT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnPydibG9jayc6J25vbmUnOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmIChjaGlsZHMubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uY2hpbGQgPSB7fTsNCiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciICsgaWQgKyAiJ10iKSkgew0KICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOnRvZ3RvcGljaWQ9JyIgKyBpZCArICInXSIpLmNoaWxkTm9kZXNbMF0uZ2V0QXR0cmlidXRlKCd4bGluazpocmVmJykpOw0KICAgICAgICAgICAgdmFyIHRvZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciICsgaWQgKyAiJ10iKS5jaGlsZHJlblswXS5nZXRBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKS5zbGljZSgxKTsNCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0udG9ndHlwZSA9IHRvZzsNCiAgICAgICAgfQ0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIGNpZCA9IGNoaWxkc1tpXS5pZDsNCiAgICAgICAgICAgIGluaXQoY2lkLCBvYmpbIm0iICsgaWRdLmNoaWxkKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoY2FsbHMubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uY2FsbCA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgY2lkID0gY2FsbHNbaV0uaWQ7DQogICAgICAgICAgICBpbml0KGNpZCwgb2JqWyJtIiArIGlkXS5jYWxsKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoYm91bmRhcnkubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uYm91bmRhcnkgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3VuZGFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIGNpZCA9Ym91bmRhcnlbaV0uaWQ7DQogICAgICAgICAgICBpbml0KGNpZCwgb2JqWyJtIiArIGlkXS5ib3VuZGFyeSk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKHN1bW1hcnkubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uc3VtbWFyeSA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN1bW1hcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBjaWQgPSBzdW1tYXJ5W2ldLmlkOw0KICAgICAgICAgICAgaW5pdChjaWQsIG9ialsibSIgKyBpZF0uc3VtbWFyeSk7DQogICAgICAgIH0NCiAgICB9DQp9DQovLy0taW5pdGlhbGl6ZQ0KLy90b2dnbGVkaXNwbGF5LS0NCnZhciBjaGFpbkFycj1bXTsNCmZ1bmN0aW9uIGdldGNoYWluKGlkKXsNCiAgICBjaGFpbkFyci51bnNoaWZ0KCdtJytpZCk7DQogICAgdmFyIHBhcmVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuZ2V0QXR0cmlidXRlKCdlZDpwYXJlbnRpZCcpOw0KICAgIGlmKCFwYXJlbnQpew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGdldGNoYWluKHBhcmVudCk7DQp9DQpmdW5jdGlvbiBnZXRvYmooaWQpIHsNCiAgICBjaGFpbkFycj1bXTsNCiAgICBnZXRjaGFpbihpZCk7DQogICAgdmFyIG1haW49Y2hhaW5BcnJbMF07DQogICAgaWYoY2hhaW5BcnIubGVuZ3RoPjEpew0KICAgICAgICB2YXIgb2JqPWRhdGFUcmVlW21haW5dOw0KICAgICAgICAvLyBjb25zb2xlLmxvZyhjaGFpbkFycik7DQogICAgICAgIGZvcih2YXIgaT0xO2k8Y2hhaW5BcnIubGVuZ3RoO2krKykgew0KICAgICAgICAgICAgdmFyIGEgPSBjaGFpbkFycltpXTsNCiAgICAgICAgICAgIGZvcih2YXIgaj0wO2o8T2JqZWN0LmtleXMob2JqKS5sZW5ndGg7aisrKXsNCiAgICAgICAgICAgICAgICB2YXIgY29iaj0gb2JqW09iamVjdC5rZXlzKG9iailbal1dW2FdOw0KICAgICAgICAgICAgICAgIGlmKGNvYmopew0KICAgICAgICAgICAgICAgICAgICBvYmo9Y29iajsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG9iag0KICAgIH1lbHNlew0KICAgICAgICB2YXIgb2JqPWRhdGFUcmVlW21haW5dOw0KICAgICAgICByZXR1cm4gb2JqDQogICAgfQ0KDQp9DQpmb3IodmFyIGk9MDtpPHNoYXBlLmxlbmd0aDtpKyspew0KICAgIHNoYXBlW2ldLm9uY2xpY2s9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgaWQ9TnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdlZDp0b2d0b3BpY2lkJykpOw0KICAgICAgICB2YXIgb2JqPWdldG9iaihpZCk7DQoNCiAgICAgICAgdmFyIHR5cGU9b2JqLnRvZ3R5cGU9PT0nbWludXMnPydwbHVzJzonbWludXMnOw0KICAgICAgICB2YXIgZGlzcGxheT1vYmoudG9ndHlwZT09PSdtaW51cyc/J25vbmUnOidibG9jayc7DQogICAgICAgIHRoaXMuY2hpbGRyZW5bMF0uc2V0QXR0cmlidXRlKCd4bGluazpocmVmJywnIycrdHlwZSk7DQogICAgICAgIG9iai50b2d0eXBlPXR5cGU7DQogICAgICAgIGNoZWNrSUQ9b2JqOw0KDQogICAgICAgIHV0ZChvYmosaWQsZGlzcGxheSk7DQogICAgICAgIGV4dHJhUmVsYUZpbigpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHV0ZChvYmosaWQsc2hvdyxvYykgew0KDQogICAgdmFyIHBzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5IT09ICdub25lJz8nYmxvY2snOidub25lJzsNCiAgICBpZiAob2JqLnJlbGFmcm9tKXsNCiAgICAgICAgaWYob2JqLnJlbGFmcm9tLmRpc3BsYXkhPT0gcHNob3cpew0KICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhvYmoucmVsYWZyb20pOw0KICAgICAgICAgICAgcmVsYWZyb21zLnNwbGljZShyZWxhZnJvbXMuaW5kZXhPZignZGlzcGxheScpLDEpOw0KICAgICAgICAgICAgZm9yKHZhciBrPTA7azxyZWxhZnJvbXMubGVuZ3RoO2srKyl7DQogICAgICAgICAgICAgICAgdmFyIGQ9cmVsYWZyb21zW2tdOw0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9iai5yZWxhZnJvbS5kaXNwbGF5ID0gcHNob3c7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKG9iai5yZWxhdG8pew0KICAgICAgICBpZihvYmoucmVsYXRvLmRpc3BsYXkhPT0gcHNob3cpew0KICAgICAgICAgICAgdmFyIHJlbGF0b3M9T2JqZWN0LmtleXMob2JqLnJlbGF0byk7DQogICAgICAgICAgICByZWxhdG9zLnNwbGljZShyZWxhdG9zLmluZGV4T2YoJ2Rpc3BsYXknKSwxKTsNCiAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYXRvcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICB2YXIgZD1yZWxhdG9zW2tdOw0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9iai5yZWxhdG8uZGlzcGxheSA9IHBzaG93Ow0KICAgICAgICB9DQogICAgfQ0KICAgIGlmKG9iai5jYWxsKXsNCiAgICAgICAgdmFyIGNhbGxzPU9iamVjdC5rZXlzKG9iai5jYWxsKTsNCiAgICAgICAgaWYoY2hlY2tJRCE9PW9iail7DQogICAgICAgICAgICBmb3IodmFyIGk9MDtpIDwgY2FsbHMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9Y2FsbHNbaV0uc2xpY2UoMSk7DQogICAgICAgICAgICAgICAgdmFyIGI9b2JqLmNhbGxbY2FsbHNbaV1dOw0KICAgICAgICAgICAgICAgIHZhciBjPWIudG9ndHlwZTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKS5zdHlsZS5kaXNwbGF5PXNob3c7DQogICAgICAgICAgICAgICAgaWYgKGIucmVsYWZyb20mJiFjKXsNCiAgICAgICAgICAgICAgICAgICAgaWYoYi5yZWxhZnJvbS5kaXNwbGF5IT09IHNob3cpew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhiLnJlbGFmcm9tKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGFmcm9tcy5zcGxpY2UocmVsYWZyb21zLmluZGV4T2YoJ2Rpc3BsYXknKSwxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYWZyb21zLmxlbmd0aDtrKyspew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGFmcm9tc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBiLnJlbGFmcm9tLmRpc3BsYXkgPSBzaG93Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChiLnJlbGF0byYmIWMpew0KICAgICAgICAgICAgICAgICAgICBpZihiLnJlbGF0by5kaXNwbGF5IT09IHNob3cpew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGF0b3M9T2JqZWN0LmtleXMoYi5yZWxhdG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRvcy5zcGxpY2UocmVsYXRvcy5pbmRleE9mKCdkaXNwbGF5JyksMSk7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGs9MDtrPHJlbGF0b3MubGVuZ3RoO2srKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQ9cmVsYXRvc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBiLnJlbGF0by5kaXNwbGF5ID0gc2hvdzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihjKXsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOnRvZ3RvcGljaWQ9JyIrYSsiJ10iKS5zdHlsZS5kaXNwbGF5PXNob3c7DQogICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoKGIuY2FsbHx8Yi5ib3VuZGFyeXx8Yi5zdW1tYXJ5KSYmYz09PSdwbHVzJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93LHRydWUpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KICAgICAgICAgICAgICAgICAgICB1dGQoYixhLHNob3csdHJ1ZSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKGIuc3VtbWFyeSYmIWMpIHsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoYi5ib3VuZGFyeSYmIWMpIHsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIGlmKG9iai5zdW1tYXJ5KXsNCiAgICAgICAgdmFyIHN1bW1hcnlzPU9iamVjdC5rZXlzKG9iai5zdW1tYXJ5KTsNCiAgICAgICAgaWYoKGNoZWNrSUQhPT1vYmomJihvYmoudG9ndHlwZT09PSdtaW51cyd8fCFvYmoudG9ndHlwZSkpfHxjaGVja0lEPT09b2JqKXsNCiAgICAgICAgICAgIGZvcih2YXIgaT0wO2k8c3VtbWFyeXMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9c3VtbWFyeXNbaV0uc2xpY2UoMSk7DQogICAgICAgICAgICAgICAgdmFyIGI9b2JqLnN1bW1hcnlbc3VtbWFyeXNbaV1dOw0KICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGEpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLnN0eWxlLmRpc3BsYXk9c2hvdzsNCi8vICAgICAgICAgICAgICAgIGlmKGMpew0KLy8gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciK2ErIiddIikuc3R5bGUuZGlzcGxheT1zaG93Ow0KLy8gICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsc2hvdykNCi8vICAgICAgICAgICAgICAgICAgICB9DQovLyAgICAgICAgICAgICAgICAgICAgaWYgKGIuY2FsbCYmYz09PSdwbHVzJykgew0KLy8gICAgICAgICAgICAgICAgICAgICAgICB1dGQoYixzaG93LHRydWUpDQovLyAgICAgICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KLy8gICAgICAgICAgICAgICAgICAgIHV0ZChiLHNob3csdHJ1ZSkNCi8vICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyhiKS5sZW5ndGghPT0wKXsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZihvYmouYm91bmRhcnkpew0KICAgICAgICB2YXIgYm91bmRhcnlzPU9iamVjdC5rZXlzKG9iai5ib3VuZGFyeSk7DQogICAgICAgIGlmKGNoZWNrSUQhPT1vYmopew0KICAgICAgICAgICAgZm9yKHZhciBpPTA7aTxib3VuZGFyeXMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9Ym91bmRhcnlzW2ldLnNsaWNlKDEpOw0KICAgICAgICAgICAgICAgIHZhciBiPW9iai5ib3VuZGFyeVtib3VuZGFyeXNbaV1dOw0KICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGEpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLnN0eWxlLmRpc3BsYXk9c2hvdzsNCi8vICAgICAgICAgICAgICAgIGlmKGMpew0KLy8gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciK2ErIiddIikuc3R5bGUuZGlzcGxheT1zaG93Ow0KLy8gICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsc2hvdykNCi8vICAgICAgICAgICAgICAgICAgICB9DQovLyAgICAgICAgICAgICAgICAgICAgaWYgKGIuY2FsbCYmYz09PSdwbHVzJykgew0KLy8gICAgICAgICAgICAgICAgICAgICAgICB1dGQoYixzaG93LHRydWUpDQovLyAgICAgICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KLy8gICAgICAgICAgICAgICAgICAgIHV0ZChiLHNob3csdHJ1ZSkNCi8vICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyhiKS5sZW5ndGghPT0wKXsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZighb2MmJm9iai5jaGlsZCkgew0KICAgICAgICB2YXIgY2hpbGRzID0gT2JqZWN0LmtleXMob2JqLmNoaWxkKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBhID0gY2hpbGRzW2ldLnNsaWNlKDEpOw0KICAgICAgICAgICAgdmFyIGIgPSBvYmouY2hpbGRbY2hpbGRzW2ldXTsNCiAgICAgICAgICAgIHZhciBjID0gYi50b2d0eXBlOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkuc3R5bGUuZGlzcGxheSA9IHNob3c7DQogICAgICAgICAgICBpZiAoYi5yZWxhZnJvbSYmIWMpew0KICAgICAgICAgICAgICAgIGlmKGIucmVsYWZyb20uZGlzcGxheSE9PSBzaG93KXsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhiLnJlbGFmcm9tKTsNCiAgICAgICAgICAgICAgICAgICAgcmVsYWZyb21zLnNwbGljZShyZWxhZnJvbXMuaW5kZXhPZignZGlzcGxheScpLDEpOw0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGs9MDtrPHJlbGFmcm9tcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGFmcm9tc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBiLnJlbGFmcm9tLmRpc3BsYXkgPSBzaG93Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLnJlbGF0byYmIWMpew0KICAgICAgICAgICAgICAgIGlmKGIucmVsYXRvLmRpc3BsYXkhPT0gc2hvdyl7DQogICAgICAgICAgICAgICAgICAgIHZhciByZWxhdG9zPU9iamVjdC5rZXlzKGIucmVsYXRvKTsNCiAgICAgICAgICAgICAgICAgICAgcmVsYXRvcy5zcGxpY2UocmVsYXRvcy5pbmRleE9mKCdkaXNwbGF5JyksMSk7DQogICAgICAgICAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYXRvcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGF0b3Nba107DQogICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYi5yZWxhdG8uZGlzcGxheSA9IHNob3c7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGMpIHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6dG9ndG9waWNpZD0nIiArIGEgKyAiJ10iKS5zdHlsZS5kaXNwbGF5ID0gc2hvdzsNCiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gJ21pbnVzJykgew0KICAgICAgICAgICAgICAgICAgICB1dGQoYixhLHNob3cpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgoYi5jYWxsfHxiLmJvdW5kYXJ5fHxiLnN1bW1hcnkpJiZjPT09J3BsdXMnKSB7DQogICAgICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdyx0cnVlKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLmNhbGwmJiFjKSB7DQogICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93LHRydWUpDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoYi5zdW1tYXJ5JiYhYykgew0KICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLmJvdW5kYXJ5JiYhYykgew0KICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gZXh0cmFSZWxhRmluKCkgew0KICAgIHZhciBleHRyYWtleXM9T2JqZWN0LmtleXMoZXh0cmFSZWxhKTsNCiAgICBmb3IodmFyIGk9MDtpPGV4dHJha2V5cy5sZW5ndGg7aSsrKXsNCiAgICAgICAgdmFyIGV4dHJhT2JqPWV4dHJhUmVsYVtleHRyYWtleXNbaV1dOw0KICAgICAgICBpZihleHRyYU9iai5pc0MgPT09IHRydWUpew0KICAgICAgICAgICAgdmFyIGZzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLmZyb21pZCkuc3R5bGUuZGlzcGxheSAhPT0nbm9uZSc/IHRydWU6IGZhbHNlOw0KICAgICAgICAgICAgdmFyIHRzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLnRvaWQpLnN0eWxlLmRpc3BsYXkgIT09J25vbmUnPyB0cnVlOiBmYWxzZTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLmlkKS5zdHlsZS5kaXNwbGF5PWZzaG93ICYmIHRzaG93PyAnYmxvY2snOiAnbm9uZSc7DQogICAgICAgICAgICBleHRyYVJlbGFbZXh0cmFrZXlzW2ldXS5pc0MgPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgIH0NCn0='))</script>
  </body>
</html>
